package com.designpattern.template;

/**
 * 模版模式
 */
public class Main {

    /**
     * 定义操作中的算法的骨架，将一些操作延迟到子类中。模版方法可以使子类不改变算法的结构，就可以重新定义
     * 某些特定的步骤
     *
     * @param args
     */
    public static void main(String[] args) {

        // 应用场景：遇到有一系列步骤构成的过程。这个过程从高层看是相同的，只有些步骤不同。可以考虑使用
        /**
         * 用户登陆功能（app登陆，web端登陆，后台系统登陆）
         * 1:参数校验
         * 2:验证码校验
         * 3:密码校验 (可能不同表)
         * 4:设置会话 （可能不同会话数据）
         * 5:设置用户资源，权限 （不同表）
         * 6:返回结果 （不同结果）
         */
        QuestionTemplate templatea = new StudentA();
        QuestionTemplate templateb = new StudentB();

        templatea.questionMethod();
        templateb.questionMethod();
    }
}
